.gitattributes क्या है?
.gitattributes फ़ाइल एक विशेष फ़ाइल है जो आपके रिपॉजिटरी में विशिष्ट फ़ाइलों को Git कैसे संभाले, यह बताती है।
यह लाइन समाप्ति, फ़ाइल प्रकार, मर्ज व्यवहार, कस्टम डिफ़ टूल और बहुत कुछ नियंत्रित करती है।
यह फ़ाइल आपकी परियोजना के साथ संस्करणित की जाती है, इसलिए आपकी टीम में सभी को समान सेटिंग्स मिलती हैं।
नोट:
Git LFS के बारे में अधिक जानकारी के लिए, समर्पित पृष्ठ देखें।
.gitattributes-कब उपयोग करें
लाइन समाप्ति
विभिन्न ऑपरेटिंग सिस्टम पर सुसंगत लाइन समाप्ति लागू करें
बाइनरी फ़ाइलें
फ़ाइलों को बाइनरी के रूप में चिह्नित करें (Git उन्हें मर्ज करने या रूपांतरित करने का प्रयास नहीं करेगा)
Git LFS
बड़ी फ़ाइलों के लिए Git LFS सक्षम करें
कस्टम टूल
विशेष फ़ाइल प्रकारों के लिए कस्टम डिफ़ या मर्ज टूल सेट करें
.gitattributes बनाएं या संपादित करें
अपने रिपॉजिटरी के रूट पर जाएं (या स्थानीय नियमों के लिए एक उपनिर्देशिका में)।
.gitattributes फ़ाइल बनाएं या संपादित करें।
फ़ाइलों को Git कैसे संभाले, इसके नियम जोड़ें, एक पंक्ति में एक।
उदाहरण: सभी टेक्स्ट फ़ाइलों के लिए Unix लाइन समाप्ति लागू करें
*.txt text eol=lf
लाइन समाप्ति संभालें
विभिन्न OS पर मर्ज संघर्ष और टूटी हुई फ़ाइलों से बचने के लिए लाइन समाप्ति को मानकीकृत करें।
उदाहरण: शेल स्क्रिप्ट्स के लिए LF सेट करें
*.sh text eol=lf
फ़ाइलों को बाइनरी के रूप में चिह्नित करें
Git को बताएं कि कौन सी फ़ाइलें बाइनरी (टेक्स्ट नहीं) हैं।
यह इन फ़ाइलों के लिए Git को मर्ज करने या लाइन समाप्ति बदलने का प्रयास करने से रोकता है।
उदाहरण: PNG फ़ाइलों को बाइनरी के रूप में चिह्नित करें
*.png binary
फ़ाइल प्रकारों के लिए LFS सक्षम करें
बड़ी फ़ाइलों जैसे छवियों या डेटासेट के लिए Git LFS का उपयोग करें।
यह Git को बताता है कि इन फ़ाइलों के लिए LFS का उपयोग करें:
उदाहरण: PSD फ़ाइलों को LFS के साथ ट्रैक करें
*.psd filter=lfs diff=lfs merge=lfs -text
कस्टम डिफ़ सेटिंग्स
Git को बताएं कि विशिष्ट फ़ाइल प्रकारों (जैसे Markdown या Jupyter notebooks) की तुलना करने के लिए एक विशेष टूल का उपयोग करें:
उदाहरण: Markdown के लिए कस्टम डिफ़
*.md diff=markdown
एट्रिब्यूट्स जांचें
यह देखने के लिए कि किसी फ़ाइल के लिए कौन से एट्रिब्यूट्स सेट हैं:
उदाहरण: किसी फ़ाइल के एट्रिब्यूट्स जांचें
git check-attr --all README.md
उन्नत उपयोग
मर्ज रणनीतियाँ
जटिल फ़ाइलों (जैसे लॉक फ़ाइलें या notebooks) के लिए कस्टम मर्ज ड्राइवर सेट करें।
Export-ignore
git archive द्वारा बनाए गए tar/zip संग्रहों से फ़ाइलों को बाहर करें:
docs/* export-ignore
युक्तियाँ और सर्वोत्तम प्रथाएं
पैटर्न
पैटर्न .gitignore की तरह ही काम करते हैं (वाइल्डकार्ड्स, आदि)।
उपनिर्देशिकाएँ
स्थानीय नियमों के लिए .gitattributes को उपनिर्देशिकाओं में रखें जहाँ वे केवल लागू हों।
पिछड़ा संशोधित नहीं करता
.gitattributes बदलना पहले से कमिट की गई फ़ाइलों को पिछड़ा संशोधित नहीं करता है - उन्हें अपडेट करने के लिए फ़ाइलों को फिर से जोड़ें।
डिबगिंग
एट्रिब्यूट समस्याओं को डिबग करने के लिए git check-attr का उपयोग करें।
नोट:
.gitattributes आपकी परियोजना के साथ संस्करणित होता है, इसलिए आपकी टीम में सभी को समान सेटिंग्स मिलती हैं।
त्वरित संदर्भ
लाइन समाप्ति
Unix लाइन समाप्ति
*.txt text eol=lf
बाइनरी फ़ाइलें
बाइनरी फ़ाइलें चिह्नित करें
*.png binary
Git LFS
बड़ी फ़ाइलों के लिए LFS
*.psd filter=lfs
एट्रिब्यूट्स जांचें
फ़ाइल एट्रिब्यूट्स जांचें
git check-attr